﻿
// 一、静态字段

//namespace cs_basic_07
//{
//    class D
//    {
//        int        Menu1;
//        static public int Menu2;
//        public void SetVals(int v1, int v2)
//        {
//            Menu1 = v1;
//            Menu2 = v2;
//        }
//        public void PrintVals(string str)
//        {
//            Console.WriteLine("{0}:Menu1:{1},Menu2:{2}", str, Menu1, Menu2);
//        }
//    }
//    internal class Program
//    {
//        static void Main(string[] args)
//        {
//            D.Menu2 = 10;
//            Console.WriteLine($"{D.Menu2}");
//            Console.WriteLine();
//            D d1 = new D();
//            D d2 = new D();
//            d1.SetVals(1, 2);
//            d1.PrintVals("d1");
//            d2.SetVals(2, 3);
//            d2.PrintVals("d2");
//            d1.PrintVals("d1");
//        }
//    }
//}
/*
预计结果：
    10
    d1:1,2
    d2:2,3
    d1:1,3
    结果正确
*/

//二、静态函数成员
//    与静态字段一样，没有实例也可以调用
//    静态函数成员不能访问实例成员，但能访问其他静态成员
//namespace cs_basic_07
//{
//    class X
//    {
//        static public int A;
//        static public void PrintA()
//        {
//            Console.WriteLine($"{A}");
//        }
//    }
//    class Program
//    {
//        static void Main( string[] args)
//        {
//            X.A = 10;
//            X.PrintA();
//        }
//    }
//}

//预计结果：
//    10
//结果正确

//三、常量与静态量
//    常量不会创建空间，只会自动替换
//namespace cs_basic_07
//{
//    class X
//    {
//        public const double PI = 3.1416;
//    }
//    class Program
//    {
//        static void Main()
//        {
//            Console.WriteLine($"{X.PI}");
//        }
//    }
//}
//预计输出：
//    3.1416
//输出正确

//四、属性

//namespace cs_basic_07
//{
//    class C
//    {
//        private int theRealValue = 10;
//        public int MyValue
//        {
//            set { theRealValue = value; }
//            get { return theRealValue; }
//        }
//    }
//    class Program
//    {
//        static void Main()
//        {
//            C c1 = new C();
//            Console.WriteLine($"{c1.MyValue}");
//            c1.MyValue = 20;
//            Console.WriteLine($"{c1.MyValue}");
//        }
//    }
//}
//预计输出：
//    10
//    20
//输出正确

// 只读属性
//namespace cs_basic_07
//{
//    class Trangle
//    {
//        public int A = 3;
//        public int B = 4;

//        public double C
//        {
//            get { return Math.Sqrt(A*A + B*B); }
//        }
//    }
//    class Program
//    {
//        static void Main()
//        {
//            Trangle trangle = new Trangle();
//            Console.WriteLine($"{trangle.C}");
//        }
//    }
//}
//预计输出：
//    5
//预测正确

// 自动属性
//namespace cs_basic_07
//{
//    class  C1
//    {
//        public int MyValue
//        {
//            get; set;
//        }
//    }
//    class Program
//    {
//        static void Main()
//        {
//            C1 c1 = new C1();
//            Console.WriteLine(c1.MyValue);
//            c1.MyValue = 6; 
//            Console.WriteLine(c1.MyValue);
//        }
//    }
//}
//预计输出：
//    0
//    6
//预计正确

// 静态属性

// 构造函数
//using System.ComponentModel.DataAnnotations;

//namespace cs_basic_07
//{
//    class Class1
//    {
//        int Id;
//        string Name;

//        public Class1()
//        {
//            Id = 28;
//            Name = "张三";
//        }
//        public Class1(int age)
//        {
//            Id = age;
//            Name = "李四";
//        }
//        public Class1(string name)
//        {
//            Id = 66;
//            Name = name;
//        }
//        public void display()
//        {
//            Console.WriteLine($"Id:{Id},   Name:{Name}");
//        }
//    }
//    class Program
//    {
//        static void Main(string[] args)
//        {
//            Class1 a = new Class1();
//            Class1 b = new Class1(16);
//            Class1 c = new Class1("王光泽");
//            a.display();
//            b.display();
//            c.display();
//        }
//    }
//}

//静态构造函数
// 对象初始化语句
//namespace cs_basic_07
//{
//    class Point
//    {
//        public int x = 1;
//        public int y = 2;
//    }
//    class Program
//    {
//        static void Main()
//        {
//            Point p1 = new Point();
//            Point p2 = new Point { x=5,y=6};
//            Console.WriteLine($"{p1.x},{p1.y}");
//            Console.WriteLine($"{p2.x},{p2.y}");

//        }
//    }    
//}

// 析构函数

// readonly
//namespace cs_learn_07
//{
//    class Shape
//    {
//        readonly double PI = 3.1416;
//        readonly int NumberOfSides;
//        public Shape(double side1,double side2)
//        {
//            NumberOfSides = 4;
//            // 后续不能更改
//        }
//        public Shape(double side1, double side2, double side3)
//        {
//            NumberOfSides = 3;
//            // 后续不能更改
//        }
//    }
//}

//this关键字
namespace cs_learn_07
{
    class MyClass
    {
        int Var1 = 10;
        public int ReternMaxSum(int Var1)
        {
            return Var1>this.Var1?Var1:this.Var1;
        }
    }
    class Program
    {
        static void Main()
        {
            MyClass mc = new MyClass();
            Console.WriteLine($"Max: {mc.ReternMaxSum(30)}");
            Console.WriteLine($"Max: {mc.ReternMaxSum(5)}");
        }
    }
}
//预测结果：
//    30
//    10

// 预测正确